In recent years, a variety of content including text information, still image information, and moving image information with large data amounts are supplied through networks. Under these circumstances, development of an encoding technology to compress the information amount progresses. The developed encoding technology, through international standardization, has become very standardized.
Networks themselves are also increasing in size and diversifying so that one content transmitted from the transmitting side reaches the receiving side through various environments. The processing functions of the transmitting- and receiving-side devices also exhibit diversification. A PC which is mainly used as a transmitter-receiver has greatly improved CPU performance and graphic performance. In addition, various devices with different processing performance specifications, including PDAs, cellular phones, TVs, and hard disk recorders, are equipped with a network connection function. For this reason, a function called scalability has received a great deal of attention, with which one datum data can cope with the variable communication line capacity or the processing performance of a receiving-side device.
A JPEG 2000 encoding method is widely known as a still image encoding method having a scalability function. This method is standardized internationally and described in detail in ISO/IEC 15444-1 (Information technology—JPEG 2000 image coding system—Part 1: Core coding system). As the characteristic feature of this method, DWT (Discrete Wavelet Transform) is executed for input image data to separate it into a plurality of frequency bands. The coefficients are quantized, and their values are arithmetically encoded for each bit plane. When a necessary number of bit planes are encoded or decoded, fine layer control can be executed.
The JPEG 2000 encoding method has also implemented ROI (Region Of Interest) which relatively increases the image quality of a region of interest in an image. This technique is not available in the conventional encoding technology.
FIG. 24 shows the encoding procedures of the JPEG 2000 encoding method. A tile division unit 9001 divides an input image into a plurality of regions (tiles). This function is also optional. A DWT unit 9002 executes DWT to separate the data into frequency bands. A quantization unit 9003 quantizes each coefficient. This function is optional. A ROI unit 9007, which is also optional, sets a region of interest. The quantization unit 9003 then executes shift-up. An entropy encoder 9004 executes entropy encoding by EBCOT (Embedded Block Coding with Optimized Truncation). A bit cutoff unit 9005 cuts off lower bits of the encoded data as needed so that rate control is accomplished. A code generator 9006 adds header information, selects various kinds of scalability functions, and outputs the encoded data.
FIG. 25 shows the decoding procedures of the JPEG 2000 encoding method. A code analyzing unit 9020 analyzes the header to obtain information to form layers. A bit cutoff unit 9021 cuts off lower bits of the input encoded data in correspondence with the capacity and decoding capability of the internal buffer. An entropy decoder 9022 decodes the encoded data by EBCOT to obtain quantized wavelet transform coefficients. An inverse quantization unit 9023 executes inverse quantization for the wavelet transform coefficients. An inverse DWT unit 9024 executes inverse DWT to play back the image data. A tile combination unit 9025 combines a plurality of tiles to play back the image data.
A motion JPEG 2000 method (ISO/IEC 15444-3 (Information technology—JPEG 2000 image coding system—Part 3: Motion JPEG 2000)) is also recommended, which executes moving image encoding by applying the JPEG 2000 encoding method to each frame of a moving image.
An MPEG-4 encoding method executes object encoding. FIG. 26 shows the encoding procedure. A block division unit 9031 divides image data into 8×8 blocks. An interpolation unit 9032 executes padding. A difference circuit 9033 subtracts predictive data by motion compensation. A DCT unit 9034 executes discrete cosine transform. A quantization unit 9035 executes quantization. The result is encoded by an entropy encoder 9036.
Information about the shape is divided by a block division unit 9043 into blocks as a unit of encoding and stored in a frame memory 9044 for reference. A difference circuit 9045 obtains the difference by referring to the frame memory 9044 in accordance with a motion vector obtained by a motion compensation unit 9042. The data is encoded by an entropy encoder 9046.
A code generator 9037 adds header information to encode the motion vector and outputs the motion vector together with the encoded data of the shape information and the encoded data of the quantized coefficients.
Simultaneously, an inverse quantization unit 9038 executes inverse quantization. An inverse DCT unit 9039 executes inverse transform of discrete cosine transform. An adding circuit 9040 adds predictive data. The data is stored in a frame memory 9041. The motion compensation unit 9042 obtains the motion vector by referring to the input image and the reference frame stored in the frame memory 9041, thereby generating predictive data.
When shape encoding is applied to a method of executing DWT, like the above-described JPEG 2000 encoding method, and interpolation is executed for each pixel, all transform coefficients are affected, resulting in degradation in quantization and the like. In addition, when interpolation is executed for each pixel, the correlation to a neighboring sub-band coefficient on the frequency space is low. Hence, the efficiency of arithmetic encoding cannot be increased.